package Generics;

/**
 * 泛型
 * 1.可以写一个泛型方法来对一个对象数组排序。
 * 然后 调用该泛型方法来对整型数组、浮点数数组 和字符串数组进行排序。
 *
 * 2.定义泛型方法的规则：
 *   所有泛型方法声明都有一个类型参数声明部分(由尖括号分隔)
 *   每一个类型参数声明部分包含一个或多个类型参数,参数间用逗号隔开。
 *   一个泛型参数，也被称为一个类型变量，必须是一个标识符。
 *   类型参数能被用来声明返回值类型，形参类型，异常类型，类，接口，方法等。
 *
 * 3.泛型标记符
 * E-Element(在集合中使用,因为集合中存放的是元素)
 * T-Type(Java类)
 * k-key(键)
 * V-Value(值)
 * N-Number(数值类型)
 * ? -表示不确定的java类型
 */
public class GenericMethodTest {
    //泛型方法 printArray
    public static <E> void printArray( E[] inputArray){
        //输出数组元素
        for (E element:inputArray){
            System.out.printf("%s",element);
        }
        System.out.println();
    }

    public static void main(String[] args) {
        //创建不同类型数组：Integer,Double,Character
        Integer [] intArray={1,2,3,4,5};
        Double [] doubleArray={1.1,2.2,3.3,4.4};
        Character [] charArray={'H','E','L','L','O'};

        System.out.println("整型数组元素为：");
        printArray(intArray);

        System.out.println("浮点型数组元素为：");
        printArray(doubleArray);

        System.out.println("字符型数组元素为：");
        printArray(charArray);
    }
}
